1. Field of the Invention
The embodiments of the invention relate to computer graphics. More specifically, embodiments of the invention relate to processing of texture map data.
2. Background
Graphics applications, and particularly three dimensionally (3D) graphics applications have long been one of the most processing intensive activities performed by personal computers. To improve graphics processing capabilities, graphics co-processors have proliferated and are widely available on most modern day personal computers. Graphics coprocessors are specialized integrated circuits designed to quickly perform processing intensive tasks required by graphic applications.
The transformation of scene information (source data) into 3D images (display output) requires a number of operations. These operations in aggregate are referred to as a 3D graphics rendering pipeline. The operations performed by the pipeline can be grouped into certain fundamental functionalities. One of these functionalities is texture mapping. Texture mapping is a process in which the one, two or three dimensional image representing an object surface properties (such as appearance, reflectivity, or other such properties) is applied to a three dimensional mesh representing the object in a final rendering. While a two dimensional image is most commonly used, other dimensionalities are possible.
It is frequently the case when a texture image is applied to an object in a final rendering, there is disparity between a number of sample texture elements (texels) and the source texture image and the number of picture elements (pixels) to which the image is mapped. When the number of texels in a given range is less than the number of pixels, then the texture is required to be upsampled. When upsampling a texture, a scheme must be used to fill intermediate values. This scheme is referred to herein as “texture filtering” and has largely been performed by a fixed function state machine.
Most current graphics coprocessor support four types of texture filtering; point sampling, bilinear filtering, trilinear filtering and anisotropic filtering. As the filtering methods become increasingly complex, the state machine required to perform them becomes increasingly complex and requires increased real estate within the graphics coprocessor. This coupled with the fact that uses for texture data continues to expand, for example, texture data is being used for lighting and other surface properties in addition to color, renders the commonly employed linear interpolation inefficient or even insufficient.